package com.mmall.pay.result;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * @author gg
 * @version RefundResult.java, v 0.1 2019-05-28 18:13 gg
 */
@Data
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RefundResult extends BaseResult {

    /**
     * 微信订单号.
     */
    private String transactionId;

    /**
     * 商户订单号.
     */
    private String outTradeNo;

    /**
     * 商户退款单号.
     */
    private String outRefundNo;

    /**
     * 微信退款单号.
     */
    private String refundId;

    /**
     * 退款金额.
     */
    private Integer refundFee;

    /**
     * 应结退款金额.
     */
    private Integer settlementRefundFee;

    /**
     * 标价金额.
     */
    private Integer totalFee;

    /**
     * 应结订单金额.
     */
    private Integer settlementTotalFee;

    /**
     * 标价币种.
     */
    private String feeType;

    /**
     * 现金支付金额.
     */
    private Integer cashFee;

    /**
     * 现金支付币种.
     */
    private String cashFeeType;

    /**
     * 现金退款金额，单位为分，只能为整数，详见支付金额.
     */
    private Integer cashRefundFee;

    /**
     * 退款代金券使用数量.
     */
    private Integer couponRefundCount;

    /**
     * 字段名：代金券退款总金额.
     * 变量名：coupon_refund_fee
     * 是否必填：否
     * 类型：Int
     * 示例值：100
     * 描述：代金券退款金额<=退款金额，退款金额-代金券或立减优惠退款金额为现金，说明详见代金券或立减优惠
     */
    private Integer couponRefundFee;

    private String openId;

    /*支付宝字段*/

    /**
     * 用户的登录id
     */
    private String buyerLogonId;

    /**
     * 买家在支付宝的用户id
     */
    private String buyerUserId;

    /**
     * 本次退款是否发生了资金变化
     */
    private String fundChange;

    /**
     * 退款支付时间
     */
    private Date gmtRefundPay;


    /**
     * 本次退款金额中买家退款金额
     */
    private String presentRefundBuyerAmount;

    /**
     * 本次退款金额中平台优惠退款金额
     */
    private String presentRefundDiscountAmount;

    /**
     * 本次退款金额中商家优惠退款金额
     */
    private String presentRefundMdiscountAmount;

    /**
     * 本次退款针对收款方的退收费金额；
     默认不返回该信息，需与支付宝约定后配置返回；
     */
    private String refundChargeAmount;

    /**
     * 退款币种信息
     */
    private String refundCurrency;

    /**
     * 退款清算编号，用于清算对账使用；
     只在银行间联交易场景下返回该信息；
     */
    private String refundSettlementId;

    /**
     * 本次商户实际退回金额
     注：在签约收单产品时需勾选“返回资金明细”才会返回
     */
    private String sendBackFee;

    /**
     * 交易在支付时候的门店名称
     */
    private String storeName;



}